1. Field of the Invention
The present invention relates to the field of computer program protection techniques and more specifically to preventing access to mask programmed ROM code.
2. Prior Art
In the area of digitally programmable control devices, microcontrollers are used to provide microcomputer control of various devices. A typical microcontroller is comprised of a microprocessor and an associated memory for storing a program code to be utilized by the microprocessor. Normally, the associated memory used with the microprocessor is an on-chip read only memory (ROM). Also included on-chip are peripheral units such as timers, counters, serial channel interfaces and random access memory (RAM).
Typically, a customer will provide a set of programming instructions to the manufacturer of the microcontroller device and the manufacturer will microcode the ROM during the manufacturing process. The technique of "mask programming" is used to microcode a mask layer during the fabrication of the microcontroller chip.
By embedding the program on a single mask layer, only one mask layer need be customized to include the proprietary program code. Typically, in both NMOS and CMOS technology, a single ROM code mask layer provides the programming by varying the depletion ion implantation during this masking step. This mask "programs" the proprietary program code into the microcontroller device by making it unique to the individual customer.
In the prior art, this ROM code is readable by the user of the microcontroller device. Therefore, in the prior art, protection of the factory masked ROM code from piracy or other unauthorized copying is difficult to achieve. Users can gain access to the contents of the ROM code by using various techniques, including the published technique of utilizing the "verify" test mode. This "verify" test mode allows byte by byte verification of the ROM code by electrical means as specified in the data sheets of these microcontrollers. Alternatively, one instruction, MOVC (move code), when executed will fetch program instructions from memory external to the chip, but will also permit internal ROM code to be made accessible. For customers, such as video game manufacturers and cable TV providers who use ROM coded scramblers, secure controllers which prevent users from accessing the stored set of program codes is desired, so that ROM codes must be protected.
It is appreciated then that what is desired is an improved ROM security technique which can be implemented in a microcontroller having an associated on-chip memory for protecting the program code from being copied.